KILLEDRuntime Complexity (full) proof of /tmp/tmpjbU2cS/Ex9_Luc06_GM.xml
The Runtime Complexity (full) of the given CpxTRS could be proven to be BOUNDS(n^1, INF).0 CpxTRS↳1 DecreasingLoopProof (⇔, 93 ms)↳2 BOUNDS(n^1, INF)↳3 RenamingProof (⇔, 0 ms)↳4 CpxRelTRS↳5 TypeInferenceProof (BOTH BOUNDS(ID, ID), 0 ms)↳6 typed CpxTrs↳7 OrderProof (LOWER BOUND(ID), 0 ms)↳8 typed CpxTrs↳9 NoRewriteLemmaProof (LOWER BOUND(ID), 109 ms)↳10 typed CpxTrs(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
a__f(a, X, X) → a__f(X, a__b, b)
a__b → a
mark(f(X1, X2, X3)) → a__f(X1, mark(X2), X3)
mark(b) → a__b
mark(a) → a
a__f(X1, X2, X3) → f(X1, X2, X3)
a__b → b
Rewrite Strategy: FULL(1) DecreasingLoopProof (EQUIVALENT transformation)
The following loop(s) give(s) rise to the lower bound Ω(n1):
The rewrite sequence
mark(f(X1, X2, X3)) →+ a__f(X1, mark(X2), X3)
gives rise to a decreasing loop by considering the right hand sides subterm at position [1].
The pumping substitution is [X2 / f(X1, X2, X3)].
The result substitution is [ ].(2) BOUNDS(n^1, INF)
(3) RenamingProof (EQUIVALENT transformation)
Renamed function symbols to avoid clashes with predefined symbol.(4) Obligation:
Runtime Complexity Relative TRS:
The TRS R consists of the following rules:
a__f(a, X, X) → a__f(X, a__b, b)
a__b → a
mark(f(X1, X2, X3)) → a__f(X1, mark(X2), X3)
mark(b) → a__b
mark(a) → a
a__f(X1, X2, X3) → f(X1, X2, X3)
a__b → b
S is empty.
Rewrite Strategy: FULL(5) TypeInferenceProof (BOTH BOUNDS(ID, ID) transformation)
Infered types.(6) Obligation:
TRS:
Rules:
a__f(a, X, X) → a__f(X, a__b, b)
a__b → a
mark(f(X1, X2, X3)) → a__f(X1, mark(X2), X3)
mark(b) → a__b
mark(a) → a
a__f(X1, X2, X3) → f(X1, X2, X3)
a__b → b
Types:
a__f :: a:b:f → a:b:f → a:b:f → a:b:f
a :: a:b:f
a__b :: a:b:f
b :: a:b:f
mark :: a:b:f → a:b:f
f :: a:b:f → a:b:f → a:b:f → a:b:f
hole_a:b:f1_0 :: a:b:f
gen_a:b:f2_0 :: Nat → a:b:f(7) OrderProof (LOWER BOUND(ID) transformation)
Heuristically decided to analyse the following defined symbols:
a__f, markThey will be analysed ascendingly in the following order:
a__f < mark(8) Obligation:
TRS:
Rules:
a__f(a, X, X) → a__f(X, a__b, b)
a__b → a
mark(f(X1, X2, X3)) → a__f(X1, mark(X2), X3)
mark(b) → a__b
mark(a) → a
a__f(X1, X2, X3) → f(X1, X2, X3)
a__b → b
Types:
a__f :: a:b:f → a:b:f → a:b:f → a:b:f
a :: a:b:f
a__b :: a:b:f
b :: a:b:f
mark :: a:b:f → a:b:f
f :: a:b:f → a:b:f → a:b:f → a:b:f
hole_a:b:f1_0 :: a:b:f
gen_a:b:f2_0 :: Nat → a:b:fGenerator Equations:
gen_a:b:f2_0(0) ⇔ a
gen_a:b:f2_0(+(x, 1)) ⇔ f(a, gen_a:b:f2_0(x), a)The following defined symbols remain to be analysed:
a__f, markThey will be analysed ascendingly in the following order:
a__f < mark(9) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)
Could not prove a rewrite lemma for the defined symbol a__f.(10) Obligation:
TRS:
Rules:
a__f(a, X, X) → a__f(X, a__b, b)
a__b → a
mark(f(X1, X2, X3)) → a__f(X1, mark(X2), X3)
mark(b) → a__b
mark(a) → a
a__f(X1, X2, X3) → f(X1, X2, X3)
a__b → b
Types:
a__f :: a:b:f → a:b:f → a:b:f → a:b:f
a :: a:b:f
a__b :: a:b:f
b :: a:b:f
mark :: a:b:f → a:b:f
f :: a:b:f → a:b:f → a:b:f → a:b:f
hole_a:b:f1_0 :: a:b:f
gen_a:b:f2_0 :: Nat → a:b:fGenerator Equations:
gen_a:b:f2_0(0) ⇔ a
gen_a:b:f2_0(+(x, 1)) ⇔ f(a, gen_a:b:f2_0(x), a)The following defined symbols remain to be analysed:
mark